package main

import "fmt"

var x, y int
var ( //这种分解的写法,一般用于声明全局变量
	a int
	b bool
)

var c, d int = 1, 2
var e, f = 123, "liudanbing"

func main() {
	// 1. 变量声明 指定变量类型，声明后若不赋值，使用默认值0
	var a int
	fmt.Printf("a = %d\n", a)

	// 2. 变量声明 附一个初始值
	var b int = 10
	fmt.Printf("b = %d\n", b)
	// 3.变量声明，省略后面的数据类型，自动匹配
	var c = "superzhang"
	fmt.Printf("c = %s\n", c)

	//4. 变量声明 省略关键字
	d := 1.234
	fmt.Printf("d = %f\n", d)

	fmt.Println("------")

	// 多变量声明，局部变量
	e, f := 1, 2
	fmt.Printf("e = %d", e, "f = %d\n", f)

	//无法对e进行第二次初始化变量声明
	// e := 3
	fmt.Printf("e = %d", e)
	//在Go语言中，_ 是一个空白标识符，表示你忽略某个值。使用 _, value := 1, 2 意味着你不需要使用第一个值（在这个例子中是 1），只对第二个值（2）感兴趣。_ 用来丢弃不需要的返回值或变量。
	_, value := 1, 2
	fmt.Printf("value = %d", value)
	// _不具备读的特性，1的赋值被废弃
	//fmt.Printf(_)
}
